home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d9xx
/
d910
/
powercache.lha
/
PowerCache
/
Documentation
/
ARexx Examples
/
test.rexx
< prev
next >
Wrap
OS/2 REXX Batch file
|
1993-08-28
|
6KB
|
190 lines
/* PowerCacheTest.rexx
*
* This script illustrates some of the features of PowerCache, and how
* to use ARexx to control the program. Not all commands are tested. For
* a complete description of PowerCache's ARexx interface, please refer
* to PowerCacheARexx.guide.
*
* Copyright (C) 1993, Michael Berg
* All Rights Reserved
*/
/* Make sure we get results back from ARexx */
OPTIONS RESULTS
/* Make sure PowerCache is on line */
IF ~SHOW(P,'POWERCACHE') THEN DO
SAY 'PowerCache is not running -- Start the program and run this script again'
EXIT
END
/* Talk to him */
ADDRESS 'POWERCACHE'
/* Manifest constants */
NL = '0a'x
TAB = '09'x
SAY '· Testing VERSION Command:' || NL
Version
SAY TAB || '· PowerCache returns "' || Result || '"'
CALL PollReturn
SAY '· Testing CACHEABLE Command:' || NL
Cacheable STEM Result.
SAY TAB || 'List of Cacheable devices:' NL
DO i = 0 TO Result.device.count-1
SAY TAB || i'.' Result.device.i Result.devname.i 'unit' Result.unit.i
END
CALL PollReturn
SAY NL || '· Testing LISTCURRENTLYCACHED Command:' NL
ListCurrentlyCached STEM Result.
SAY TAB || 'Device' || TAB || 'Organization' || TAB || 'Type' || TAB || 'Algo' NL
DO i = 0 TO Result.device.count-1
SAY TAB || i'.' Result.device.i,
' '|| Result.sets.i Result.lines.i result.prefetch.i,
TAB || Result.type.i,
TAB || Result.algorithm.i
/* Also available, but omitted for simplicity:
*
* Result.purgetime.i
* Result.freeafterpurge.i
* Result.cachebuffer.i
* Result.buffersize.i
* Result.overhead.i
*
* (Please refer to PowerCacheARexx.guide for an explanation of these
* variables)
*/
END
CALL PollReturn
/* We're going to use DF0: as an example in the following sections. So we
* have to make sure the user is not already caching this device (and remove
* it if he is)
*/
GetCacheInfo 'DF0:'
IF RC = 0 THEN DO
RemoveCache 'DF0:'
SAY NL || '(Removed Cache on DF0: to simplify the following ARexx example'||NL||'code sections)'
CALL PollReturn
END
SAY '· Testing ADDCACHE Command' || NL
AddCache 'DF0:' 8 32 4 'R/W' 'LRU' 2 'FASTMEM'
IF RC ~= 0 THEN DO
SAY TAB || 'Could not add a 512k cache to DF0:' || NL,
TAB || 'PowerCache says: "' || RC2 || '"'
END
ELSE DO
SAY TAB || 'Successfully added a 8 x 32 x 4 cache (512k) to DF0:'
CALL PollReturn
SAY TAB || '· Testing GETCACHEINFO Command on DF0:' || NL
GetCacheInfo 'DF0:' STEM Result.
IF RC = 0 THEN DO
SAY TAB || TAB || 'Sets =' Result.sets,
NL || TAB || TAB || 'Lines =' Result.lines,
NL || TAB || TAB || 'Prefetch =' Result.prefetch || NL,
NL || TAB || TAB || 'Type =' Result.type,
NL || TAB || TAB || 'Algorithm =' Result.algorithm,
NL || TAB || TAB || 'Purgetime =' Result.purgetime,
NL || TAB || TAB || 'FreePurge? ' Result.freeafterpurge || NL,
NL || TAB || TAB || 'CacheBuffer =' Result.cachebuffer,
NL || TAB || TAB || 'BufferSize =' Result.buffersize,
NL || TAB || TAB || 'Overhead =' Result.overhead
END
ELSE SAY TAB || TAB || 'Could not GETCACHEINFO for DF0:' || NL,
TAB || TAB || 'PowerCache says: "' || RC2 || '"'
CALL PollReturn
SAY TAB || '· Testing REMOVECACHE Command'
RemoveCache 'DF0:'
IF RC ~= 0 THEN DO
SAY TAB || TAB || 'Could not remove cache on DF0:' || NL,
TAB || TAB || 'PowerCache says: "' || RC2 || '"'
END
ELSE SAY TAB || TAB || 'Successfully removed cache from DF0:'
END
CALL PollReturn
SAY '· Testing GETDEVICEINFO Command for DF0:' || NL
GetDeviceInfo 'DF0:' STEM Result.
IF RC == 0 THEN DO
SAY TAB || 'Logical Drive =' Result.logicaldrive || NL,
TAB || 'Devicename =' Result.devicename || NL,
TAB || 'Unit =' Result.unit || NL,
TAB || 'Task TCB =' Result.tasktcb || NL,
TAB || 'Sectorsize =' Result.sectorsize || NL,
TAB || 'Surfaces =' Result.surfaces || NL,
TAB || 'Blocks per Track =' Result.blockspertrack || NL,
TAB || 'Capacity =' Result.capacity || NL,
TAB || 'Reserved (start) =' Result.reservedstart || NL,
TAB || 'Reserved (end) =' Result.reservedend || NL,
TAB || 'Interleave =' Result.interleave || NL,
TAB || 'Low Cylinder =' Result.lowcyl || NL,
TAB || 'High Cylinder =' Result.highcyl || NL,
TAB || 'Initial DOS Buffers =' Result.initialdosbuffers || NL,
TAB || 'Buffer Memory Type =' Result.bufmemtype || NL,
TAB || 'Max Transfer per Request =' Result.maxtransfer || NL,
TAB || 'Address Mask =' Result.mask || NL,
TAB || 'Boot Priority =' Result.bootpri || NL,
TAB || 'File System =' Result.filesystem || NL,
TAB || 'Boot Blocks =' Result.bootblocks || NL
END
ELSE SAY TAB || 'Could not GETDEVICEINFO for DF0:' || NL,
TAB || 'PowerCache says: "' || RC2 || '"'
CALL PollReturn
SAY '· Testing SHOW/HIDE' || NL
SAY TAB || '· SHOW'
Show
CALL PollReturn
SAY TAB || '· HIDE'
Hide
CALL PollReturn
Show
SAY '· Testing SETENABLEKEY'
SetEnableKey '"control shift alt b"'
IF RC = 0 THEN DO
SAY TAB || 'Managed to change the hotkey from "' || Result || '"' || NL,
TAB || 'to "control shift alt b".'
/* Double quoting is necessary - and this is how you do it */
OldKey = '"' || Result || '"'
CALL PollReturn
SAY TAB || 'Restoring hotkey to original setting'
SetEnableKey OldKey
IF RC ~= 0 THEN SAY TAB || 'Failed -- PowerCache says: "' || RC2 || '"'
END
ELSE SAY TAB || 'Could not change hotkey' || NL,
TAB || 'PowerCache says: "' || RC2 || '"'
EXIT
PollReturn:
SAY NL || 'PRESS RETURN'
PULL Anything